This project is concerned with the implementation of the immersed boundary method on distributed-memory machines. The immersed boundary method was originally introduced to study the flow patterns around heart valves. It is broadly applicable to problems in biofluid dynamics, since such problems typically involve a viscous incompressible fluid that interacts with immersed elastic or muscular tissue. In the immersed boundary method, the incompressible Navier-Stokes equations are solved by a finite difference method on a cubic computational lattice with periodic boundary conditions imposed. The heart (for example) is modeled as a collection of fibers, each fiber being a one- dimensional array of points, with successive points being connected by springs, the parameters of which might be time-dependent to simulate muscular activity. The points that represent the fibers might lie anywhere within the cubic box occupied by the fluid: they need not coincide with the points of the computational lattice on which the Navier-Stokes equations are solved. Fiber- fluid interaction is mediated by a smoothed approximation to the Dirac delta function, which is used in the application of the fiber force to the fluid and in the interpolation of the fluid velocity at the fiber points, so that the fibers can be moved at the local fluid velocity. The distributed implementation of the immersed boundary method is based on domain decomposition. The cubic domain of the computation is partitioned into cubic subdomains (e.g., a 4x4x4 or an 8x8x8 array of subdomains) with each subdomain being assigned to a processor. That processor handles both the fluid and the fiber variables associated with its subdomain. In the case of the fiber variables, this involves "handing off" data as the fibers move about from one subdomain to another. Moreover, each processor must maintain an up-to-date copy of the data belonging to other processors but living just across the border in a neighboring subdomain, since those data are needed to update a processor's own data. Finally, since the fluid is incompressible, some form of global communication is needed within each time step. In our current algorithm, this takes the form of a Fast Fourier Transform (FFT) on the (distributed) computational lattice of the fluid. The fluid dynamics subroutine for this project is being written by Hadil Sabbagh, and will be the substance of his Ph.D. thesis, to be defended in September 1995. It includes an explicit, upwind convection step followed by an implicit solution of the discrete Stokes equations, the latter being accomplished by means of a distributed 3-D FFT. Note that the partition of the cubic domain into an array of smaller cubes is not particularly natural for the FFT, but Sabbagh employs an algorithm that rearranges the data in a balanced way, so that, at each stage of the 3-D FFT, all the processors do equal numbers of one-dimensional FFTs, thus maintaining load balancing and exploiting library routines for the many one-dimensional FFTs that must be performed. The fluid solver is written and is currently undergoing rigorous testing. The fiber and interaction parts of the distributed immersed boundary code are being written by Nathaniel Cowen. The most difficult part of this work is already accomplished: the creation of the distributed data structure that will be used to keep track of the fibers as they crisscross the various subdomain boundaries. This data structure must enable the efficient location of neighboring fiber points across subdomain boundaries, and it must be flexible enough to be updated efficiently as the fiber points move from one subdomain to another. What makes these tasks difficult is that fiber data cannot be stored according to any global indexing scheme, since that would require enough storage associated with each processor to handle all of the fiber data, which would be a non-scalable memory requirement. A detailed plan for the required data structure is in place, and a code based on it is under development. Our immediate goal, then, is to produce a working distributed code for the immersed boundary method. Once such a code is running and tested, its performance will be assessed, and improvements in performance will be sought. The most communication-intensive step in the current version of the method is the distributed FFT, so it is quite likely that this will turn out to be the place where we should focus our effort. One strategy would be to make the FFT faster, perhaps by employing more efficient data-moving routines. Another strategy would be to avoid the use of the FFT entirely, by employing an iterative approach to the solution of the discrete Stokes equations.